package com.yxinsur.imc.business.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yxinsur.imc.business.domain.ImcIns;
import com.yxinsur.imc.business.form.InsFactorForm;
import com.yxinsur.imc.business.form.InsForm;
import com.yxinsur.imc.business.form.InsSearchForm;
import com.yxinsur.imc.business.vo.InsVo;
import com.yxinsur.imc.business.vo.RepoInsExportVo;
import com.yxinsur.imc.business.vo.select.SelectIns;

/**
 * 我的保险产品库(险种)Service接口
 *
 * @author imc
 * @date 2021-03-26
 */
public interface IImcInsService  extends IService<ImcIns>
{
    /**
     * 查询我的保险产品库(险种)
     *
     * @param id 我的保险产品库(险种)ID
     * @return 我的保险产品库(险种)
     */
    public ImcIns selectImcInsById(String id);

    /**
     * 查询我的保险产品库(险种)列表
     *
     * @param insForm 我的保险产品库(险种)
     * @return 我的保险产品库(险种)集合
     */
    public List<InsVo> selectImcInsList(InsSearchForm insForm);

    /**
     * 新增我的保险产品库(险种)
     *
     * @param repoInsIds 我的保险产品库(险种)
     * @return 结果
     */
    public int insertImcIns(Long[] repoInsIds);

    /**
     * 更新我的险种扩展字段名称
     *
     * @param factorForm 险种扩展字段
     * @return 结果
     */
    public int updateImcInsFactors(InsFactorForm factorForm);

    /**
     * 批量删除我的保险产品库(险种)
     *
     * @param ids 需要删除的我的保险产品库(险种)ID
     * @return 结果
     */
    public int deleteImcInsByIds(Long[] ids);

    /**
     * 下拉列表数据获取
     *
     * @param repoSupplierId 保险公司id
     * @return 结果
     */
    public List<SelectIns> selectDataList(Long repoSupplierId);

    /**
     * 导出费率配置信息
     * @param insForm
     * @return
     */
    List<RepoInsExportVo> exportInsList(InsSearchForm insForm);

    /**
     * 导出费率详情信息
     * @param repoInsId
     * @return
     */
    List<RepoInsExportVo> exportInsListByRepoInsId(Long repoInsId);
}
